/**
 * @Function 调用远程服务
 * @ProjectName credit-data-platform
 * @PackageName com.py.credit.service
 * @FileName LhjcRemoteBaseService.java
 * @Date 2018年5月16日上午10:57:42
 * @Author Min DongXv
 * @Copyright (c) 2018, 金电联行 All Rights Reserved.
 */
package com.py.credit.service;

import com.py.credit.common.rest.RestServiceResult;
import com.py.credit.entity.DictEntity;
import com.py.credit.entity.MsgContentEntity;
import com.py.credit.entity.SysUser;
import com.py.framework.core.entity.SysAreaEntity;
import com.py.framework.core.entity.SysOfficeEntity;
import org.apache.http.HttpResponse;

import java.util.List;
import java.util.concurrent.Future;

/**
 * @Function 调用远程服务
 * @ClassName LhjcRemoteBaseService
 * @Date 2018年5月16日 上午10:57:42
 * @Author Min DongXv
 */
public interface LhjcRemoteBaseService {

    /**
     * @return
     * @Function 获取当前用户信息
     * @FileName LhjcRemoteBaseService.java
     * @MethodName getCurrentUser
     * @Date 2018年5月19日 下午4:44:59
     * @Author Min DongXv
     */
    RestServiceResult<SysUser> getCurrentUser(String jdToken);

    /**
     * @param deptIdList
     * @param jdToken
     * @return
     * @Function 获取部门用户信息
     * @FileName LhjcRemoteBaseService.java
     * @MethodName getDeptManager
     */
    List<Long> getDeptManager(String deptIdList, String jdToken);

    /**
     * 通过字典主表ID获取字典列表信息
     *
     * @param dictKey
     * @return
     */
    RestServiceResult<List<DictEntity>> getDictByDictKey(String dictKey);

    /**
     * 通过字典表ID获取特定字典表数据
     *
     * @param dictKey
     * @param dtlKey
     * @return
     */
    RestServiceResult<DictEntity> getDictByDtlKey(String dictKey, String dtlKey);

    RestServiceResult<List<SysAreaEntity>> getAllAreas(String areaId, String jdToken);

    RestServiceResult<List<SysOfficeEntity>> getOfficesByAreaId(String areaId, String jdToken);

    /**
     * @param list
     * @Function 发送站内信
     * @FileName RemoteBaseService.java
     * @MethodName sendMsg
     * @Date 2018年5月16日 上午11:38:49
     * @Author Min DongXv
     */
    Future<HttpResponse> sendMsg(List<MsgContentEntity> list, String jdToken);

    /**
     * 根据用户名获取用户信息(巩义接口、联合奖惩接口专用)
     *
     * @param username
     * @return
     */
    SysUser getByUsername(String username);

    /**
     * 获取联合奖惩部门token(联合奖惩接口专用)
     *
     * @param deptId
     * @return
     */
    String getLhjcToken(String deptId);
}
